package com.itdong.utils;

import io.jsonwebtoken.*;

import java.util.Date;

public class JwtUtils {
    public static final long EXPIRATION_TIME = 1000 * 60 * 60L; //过期时间一个小时

    public static final String APPSECRET_KEY = "linyudong"; // 应用密钥

    /**
     * 使用用户id生成token
     * @param userid
     * @return
     */
    public static String createToken(String userid){
        String token = Jwts
                .builder()
                .setSubject(userid) /*设置主题*/
                .claim("userid", userid) /*设置密文主体*/
                .setIssuedAt(new Date()) /*设置生效时间点*/
                .setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME)) /*设置过期时间点*/
                .signWith(SignatureAlgorithm.HS256, APPSECRET_KEY) /*指定加密算法和给应用的密钥*/
                .compact();

        return token;
    }


    /**
     * 解析token
     * @param token
     * @return
     */
    public static String parseToken(String token){
        JwtParser parser = Jwts.parser();
        parser.setSigningKey(APPSECRET_KEY);
        Jws<Claims> claimsJws = parser.parseClaimsJws(token);
        Claims body = claimsJws.getBody();
        String userid = (String) body.get("userid");
        return userid;
    }


    /*public static void main(String[] args) {
        String token = JwtUtils.createToken("123");
        System.out.println(token);
        String s = JwtUtils.parseToken(token);
        System.out.println(s);
    }*/
}
